package com.lailai.utils;

import com.lailai.constant.ErrorCode;
import com.lailai.exception.BusinessException;

/**
 * @Author lgr
 * @Date 2025/9/18
 * @Email 983105834@qq.com
 */
public class ExceptionUtils {

    /**
     * 抛出业务异常
     *
     * @param errorCode 错误码枚举
     */
    public static void throwBusinessException(ErrorCode errorCode) {
        throw new BusinessException(errorCode.getCode(), errorCode.getMessage());
    }

    /**
     * 抛出带详细信息的业务异常
     *
     * @param errorCode 错误码枚举
     * @param detail    详细信息
     */
    public static void throwBusinessException(ErrorCode errorCode, String detail) {
        throw new BusinessException(errorCode.getCode(), errorCode.getMessage() + ": " + detail);
    }

    /**
     * 抛出系统异常
     *
     * @param message 错误信息
     */
    public static void throwSystemException(String message) {
        throw new BusinessException(ErrorCode.SYSTEM_ERROR.getCode(), message);
    }

    /**
     * 抛出系统异常（带原因）
     *
     * @param message 错误信息
     * @param cause   原因
     */
    public static void throwSystemException(String message, Throwable cause) {
        throw new BusinessException(ErrorCode.SYSTEM_ERROR.getCode(), message, cause);
    }
}
